package com.wf.day_0612.test1;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * @author mpk
 * @since 2024/6/12 16:54:34
 */
public class MyLock implements Runnable {

    private final Lock lock = new ReentrantLock(true);

    private int i = 1;

    @Override
    public void run() {
        // 无限循环，直到满足特定条件才退出
        while (true) {
            try {
                // 尝试获取锁，如果成功，继续执行下面的代码
                lock.lock();
                // 检查变量i的值，如果大于10，则退出循A
                if (i > 10) {
                    break;
                } else {
                    // 当i小于或等于10时，打印当前线程名和i的值，并递增i
                    System.out.println(Thread.currentThread().getName() + "-->" + i++);
                }
            } finally {
                // 无论是否成功获取锁，都会释放锁
                lock.unlock();
            }
        }


    }


}
